package rddSummary.transition.value_type

import org.apache.spark.{SparkConf, SparkContext}

object test_mapPartitionsWithIndex {

  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setAppName("test").setMaster("local")
    val context = new SparkContext(conf)

    val dates = context.makeRDD(List(1, 2, 3, 4), 3)

    /**
     * 将待处理的数据以分区为单位发送到计算节点进行处理，这里的处理是指可以进行任意的处
     * 理，哪怕是过滤数据，在处理时同时可以获取当前分区索引。
     */
    val value = dates.mapPartitionsWithIndex(
      (index, datas) => {
        datas.map((index, _))
      }
    )

    value.collect().foreach(println)

    context.stop()
  }
}
